Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 23, 2026

Implements ActivityPub Move activity to migrate followers from GoBlog to another Fediverse account. Compatible servers (Mastodon, GoToSocial, etc.) automatically transfer follows to the new account.

CLI Commands

# Migrate followers (target must have GoBlog URL in alsoKnownAs)
./GoBlog activitypub move-followers <blog> <target>

# Clear movedTo setting to undo migration
./GoBlog activitypub clear-moved <blog>

Changes

ActivityPub types (pkgs/activitypub/)

  • Add MoveType constant, Target field to Activity, MovedTo field to Person

Move implementation (activityPub.go, activityStreams.go)

  • apMoveFollowers: validates target's alsoKnownAs, saves movedTo to DB, purges cache, sends Move to followers
  • Actor profile includes movedTo when set

Database (settingsDb.go)

  • Per-blog movedTo setting with getter/setter/delete

Tests

  • Integration test with GoToSocial v0.20.3 verifying Move delivery and automatic follow transfer
  • Unit tests for Move types and settings

Documentation (README.md)

  • Migration instructions for moving to/from GoBlog

Notes

  • Move activity addressed only to followers collection (not public) per GTS requirements
  • GoBlog ignores incoming Move activities—it's publish-only and doesn't follow accounts
Original prompt

Please implement support for ActivityPub "Move" to move all followers of one account on GoBlog to another fediverse account (with a CLI command). Test that behaviour with integration tests (see the integration test with GoToSocial): There should be a second account on GTS and it should be confirmed that the first account moves the follow from GoBlog to the second account, when it receives the Move. Keep the code simple and understandable, but cover it with tests. Add documentation to the readme on how to move followers to an external account and how GoBlog can also be the target for an account move.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 3 commits January 23, 2026 16:27
…rnal accounts

Co-authored-by: jlelse <8822316+jlelse@users.noreply.github.com>
…allel sending

Co-authored-by: jlelse <8822316+jlelse@users.noreply.github.com>
Co-authored-by: jlelse <8822316+jlelse@users.noreply.github.com>
Copilot AI changed the title [WIP] Implement ActivityPub 'Move' support for follower management Add ActivityPub Move activity support for migrating followers to external accounts Jan 23, 2026
Copilot AI requested a review from jlelse January 23, 2026 16:36
Copilot AI and others added 2 commits January 23, 2026 17:13
… command

Co-authored-by: jlelse <8822316+jlelse@users.noreply.github.com>
Co-authored-by: jlelse <8822316+jlelse@users.noreply.github.com>
Copilot AI and others added 3 commits February 3, 2026 07:02
Co-authored-by: jlelse <8822316+jlelse@users.noreply.github.com>
…rs, not public

Co-authored-by: jlelse <8822316+jlelse@users.noreply.github.com>
…unt for auto-accept

Co-authored-by: jlelse <8822316+jlelse@users.noreply.github.com>
…rmat files

Co-authored-by: jlelse <8822316+jlelse@users.noreply.github.com>
Copilot AI changed the title Add ActivityPub Move activity support for migrating followers to external accounts Add ActivityPub Move activity support for account migration Feb 3, 2026
@jlelse jlelse marked this pull request as ready for review February 3, 2026 07:42
Repository owner deleted a comment from Copilot AI Feb 3, 2026
@jlelse jlelse merged commit 13e822e into master Feb 3, 2026
10 checks passed
@jlelse jlelse deleted the copilot/implement-activitypub-move branch February 3, 2026 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants